/*******************************************************************************
 * Copyright (c) 2013 Michele Nanna.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Public License v3.0
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/licenses/gpl.html
 * 
 * Contributors:
 *     Michele Nanna - initial API and implementation
 ******************************************************************************/
package com.systemfastforward.provinciawifi.service;

import java.util.Comparator;

/**
 * Simple POJO representing an access point.
 * 
 * @author Michele Nanna
 *
 */
public class AccessPoint implements Comparable<AccessPoint> {

	private String denominazione;
	private double latitudine;
	private double longitudine;
	private String indirizzo;
	private String comune;
	private String tipologia;

	public String getDenominazione() {
		return denominazione;
	}

	public void setDenominazione(String denominazione) {
		this.denominazione = denominazione;
	}

	public double getLatitudine() {
		return latitudine;
	}

	public void setLatitudine(double latitudine) {
		this.latitudine = latitudine;
	}

	public double getLongitudine() {
		return longitudine;
	}

	public void setLongitudine(double longitudine) {
		this.longitudine = longitudine;
	}

	public String getIndirizzo() {
		return indirizzo;
	}

	public void setIndirizzo(String indirizzo) {
		this.indirizzo = indirizzo;
	}

	public String getComune() {
		return comune;
	}

	public void setComune(String comune) {
		this.comune = comune;
	}

	public String getTipologia() {
		return tipologia;
	}

	public void setTipologia(String tipologia) {
		this.tipologia = tipologia;
	}
	
	@Override
	public boolean equals(Object o) {
		return super.equals(o);
	}
	
	public String getIndirizzoCompleto(){
		return indirizzo + ", " + comune;
	}

	@Override
	public String toString() {
		return "AccessPoint [denominazione=" + denominazione + ", latitudine=" + latitudine + ", longitudine=" + longitudine + ", indirizzo=" + indirizzo
				+ ", comune=" + comune + ", tipologia=" + tipologia + "]";
	}

	@Override
	public int compareTo(AccessPoint another) {
		return this.denominazione.compareToIgnoreCase(another.getDenominazione());
	}
	
	public static final class ComuneComparator implements Comparator<AccessPoint>{
		@Override
		public int compare(AccessPoint lhs, AccessPoint rhs) {
			return lhs.getComune().compareToIgnoreCase(rhs.getComune());
		}
	}
}
